]>
Commit | Line | Data |
---|---|---|
1 | ## Hotline v.1.2.3 Login Sequence | |
2 | ||
3 | ### TLDR | |
4 | ||
5 | 1. TCP handshake | |
6 | 2. Hotline proto handshake | |
7 | 3. Client fires off: | |
8 | ||
9 | a. Login transaction (107) | |
10 | ||
11 | b. tranGetUserNameList (300) | |
12 | ||
13 | c. tranGetMsg (101) | |
14 | ||
15 | 4. Server replies to each | |
16 | ||
17 | ### Long version | |
18 | ||
19 | 1. Client -> Server TCP handshake | |
20 | 2. Hotline proto handshake (TRTPHOTL) | |
21 | 3. Client sends Login transaction (107) | |
22 | ||
23 | ``` | |
24 | 00. // flags | |
25 | 00 // isReply | |
26 | 00 6b // transaction type: Login transaction (107) | |
27 | 00 00 00 01 // ID | |
28 | 00 00 00 00 // error code | |
29 | 00 00 00 13 // total size | |
30 | 00 00 00 13 // data size | |
31 | ||
32 | 00 02 // field count | |
33 | ||
34 | 00 66 // fieldUserName (102) | |
35 | 00 07 // field length | |
36 | 75 6e 6e 61 6d 65 64 // unnamed | |
37 | ||
38 | 00 68 // fieldUserIconID (104) | |
39 | 00 02 // field length | |
40 | 07 d1 // 1233 | |
41 | ``` | |
42 | ||
43 | 4. Server sends empty reply to login transaction (107) | |
44 | ||
45 | 00 | |
46 | 01 | |
47 | 00 00 | |
48 | 00 00 00 01 | |
49 | 00 00 00 00 | |
50 | 00 00 00 02 | |
51 | 00 00 00 02 | |
52 | 00 00 | |
53 | ||
54 | ||
55 | 5. Client sends tranGetUserNameList (300) (with some weird extra data at the end??) | |
56 | ||
57 | ||
58 | 00 | |
59 | 00 | |
60 | 01 2c // tranGetUserNameList (300) | |
61 | 00 00 00 02 // ID | |
62 | 00 00 00 00 // Error Code | |
63 | 00 00 00 02 | |
64 | 00 00 00 02 | |
65 | 00 00 | |
66 | 00 00 | |
67 | 00 65 00 00 00 03 00 00 00 00 00 00 | |
68 | ||
69 | 00 02 | |
70 | 00 00 | |
71 | ||
72 | 00 02 | |
73 | 00 00 | |
74 | ||
75 | ||
76 | Server sends tranServerMsg | |
77 | ||
78 | 00 | |
79 | 00 | |
80 | 00 68 // tranServerMsg (104) | |
81 | 00 00 00 01 | |
82 | 00 00 00 00 | |
83 | 00 00 00 a4 | |
84 | 00 00 00 a4 | |
85 | ||
86 | 00 01 | |
87 | ||
88 | 00 65 // fieldData (101) | |
89 | 00 9e | |
90 | 54 68 65 20 73 65 72 76 65 72 20 79 6f 75 | |
91 | 20 61 72 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 | |
92 | 6f 20 69 73 20 6e 6f 74 20 6c 69 63 65 6e 73 65 | |
93 | 64 20 61 6e 64 20 69 73 20 66 6f 72 20 65 76 61 | |
94 | 6c 75 61 74 69 6f 6e 20 75 73 65 20 6f 6e 6c 79 | |
95 | 2e 20 50 6c 65 61 73 65 20 65 6e 63 6f 75 72 61 | |
96 | 67 65 20 74 68 65 20 61 64 6d 69 6e 69 73 74 72 | |
97 | 61 74 6f 72 20 6f 66 20 74 68 69 73 20 73 65 72 | |
98 | 76 65 72 20 74 6f 20 70 75 72 63 68 61 73 65 20 | |
99 | 61 20 6c 69 63 65 6e 73 65 64 20 63 6f 70 79 2e | |
100 | ||
101 | ||
102 | ## Hotline 1.9.2 Login Sequence | |
103 | ||
104 | ||
105 | 1. Client/Server TCP handshake | |
106 | 2. Hotline Proto handshake | |
107 | 2. Client sends Login transaction (107) | |
108 | - 105: UserLogin | |
109 | - 106: UserPassword | |
110 | - 160: Version | |
111 | 3. Server sends reply with no type and fields: | |
112 | - 160: Version | |
113 | - 161: Banner ID | |
114 | - 162: Server Name | |
115 | 4. Server sends Agreement transaction (109) | |
116 | 5. Client sends Agreed transaction (121) | |
117 | - 102: User name | |
118 | - 104: User icon ID | |
119 | - 113: Options | |
120 | - 215: Automatic Reponse (optional) | |
121 | 6. Server sends reply with no type and no fields | |
122 | 7. Server sends User Access (354) | |
123 | ||
124 | TBD | |
125 | ||
126 | ``` | |
127 | ||
128 | ``` |